//index.js
//获取应用实例
const app = getApp()
const db = wx.cloud.database()
const userinfo = db.collection('userinfo')
const userpay = db.collection('userpay')
Page({
  data: {
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    openid: '',
    hasFlag: false,
    list: [],
    name:''
  },
  //事件处理函数
  bindViewTap: function() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onLoad: function () {
    let that = this
    wx.getSetting({
      success(res) {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称
          wx.getUserInfo({
            success: function (res) {
              app.globalData.userInfo = res.userInfo
              that.setData({
                userInfo: res.userInfo,
                hasUserInfo:true
              })
            }
          })
          wx.cloud.callFunction({
            name: 'getopenid',
          }).then(res => {
            app.globalData.openid = res.result.openid
            that.setData({
              openid: res.result.openid
            })
            userinfo.where({
              _openid: res.result.openid
            }).get().then(res => {
              if (res.data.length) {
                app.globalData.items.push(res.data[0].itemName)
                wx.cloud.callFunction({
                  name: 'getall',
                  data: {
                    name: app.globalData.items[0]
                  }
                }).then(res => {
                  that.setData({
                    name: app.globalData.items[0],
                    list: res.result.data
                  })
                })
                that.setData({
                  hasFlag: true
                })
              }
            }).catch(err => {
              console.log('error')
            })
          }).catch(err => {
            // handle error
          })
        }
      }
    })


    // if (app.globalData.userInfo && app.globalData.openid) {
    //   console.log('here')
    //   this.setData({
    //     userInfo: app.globalData.userInfo,
    //     hasUserInfo: true
    //   })
    // } else if (this.data.canIUse){
    //   // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
    //   // 所以此处加入 callback 以防止这种情况
    //   app.userInfoReadyCallback = res => {
    //     this.setData({
    //       userInfo: res.userInfo,
    //       hasUserInfo: true
    //     })
    //   }
    // } else {
    //   // 在没有 open-type=getUserInfo 版本的兼容处理
    //   wx.getUserInfo({
    //     success: res => {
    //       app.globalData.userInfo = res.userInfo
    //       this.setData({
    //         userInfo: res.userInfo,
    //         hasUserInfo: true
    //       })
    //     }
    //   })
    // }
    // wx.cloud.callFunction({
    //   // 要调用的云函数名称
    //   name: 'getopenid',
    //   // 传递给云函数的event参数
    // }).then(res => {
    //   app.globalData.openid = res.result.openid
    //   this.setData({
    //     openid: res.result.openid
    //   })
    //   userinfo.where({
    //     _openid: res.result.openid
    //   }).get().then(res => {
    //     if (res.data.length) {
    //       app.globalData.items.push(res.data[0].itemName)
    //       let that = this
    //       wx.cloud.callFunction({
    //         // 要调用的云函数名称
    //         name: 'getall',
    //         // 传递给云函数的event参数
    //         data: {
    //           name: app.globalData.items[0]
    //         }
    //       }).then(res => {
    //         that.setData({
    //           name: app.globalData.items[0],
    //           list:res.result.data
    //         })
    //       }).catch(err => {
    //         // handle error
    //       })
    //       this.setData({
    //         hasFlag: true
    //       })
    //     }
    //   }).catch(err => {
    //     console.log('error')
    //   })
    // }).catch(err => {
    //   // handle error
    // })
    
  },

  getUserInfo: function(e) {
    let that = this
    console.log('here')
    wx.cloud.callFunction({
      // 要调用的云函数名称
      name: 'getopenid',
      // 传递给云函数的event参数
    }).then(res => {
      app.globalData.openid = res.result.openid
      that.setData({
        openid: res.result.openid
      })
      userinfo.where({
        _openid: res.result.openid
      }).get().then(res => {
        if (res.data.length) {
          app.globalData.items.push(res.data[0].itemName)
          wx.cloud.callFunction({
            name: 'getall',
            data: {
              name: app.globalData.items[0]
            }
          }).then(res => {
            that.setData({
              name: app.globalData.items[0],
              list: res.result.data
            })
          })
          that.setData({
            hasFlag: true
          })
        }
      }).catch(err => {
        console.log('error')
      })
      // app.globalData.openid = res.result.openid
      // this.setData({
      //   openid:res.result.openid
      // })
    }).catch(err => {
      // handle error
    })
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  },

  onShow:function(e){
    if(app.globalData.items.length){
      this.setData({
        hasFlag: true
      })
      let that = this
      wx.cloud.callFunction({
        // 要调用的云函数名称
        name: 'getall',
        // 传递给云函数的event参数
        data: {
          name: app.globalData.items[0]
        }
      }).then(res => {
        that.setData({
          list: res.result.data,
          name: app.globalData.items[0]
        })
      }).catch(err => {
        // handle error
      })
    }
    else{
      this.setData({
        list:[],
        name:'',
        hasFlag:false
      })
    }
  },

  joinItem:function(e){
    wx.navigateTo({
      url: '../join/join',
    })
  },

  add:function(e){
    wx.navigateTo({
      url: '../add/add',
    })
  },

  sum: function (e) {
    wx.navigateTo({
      url: '../sum/sum',
    })
  },
  delete:function(e){
    userpay.doc(e.target.id).remove().then(res => {
      wx.showToast({
        title: '删除成功',
        icon: 'success',
        duration: 2000
      })
      wx.cloud.callFunction({
        // 要调用的云函数名称
        name: 'getall',
        // 传递给云函数的event参数
        data: {
          name: app.globalData.items[0]
        }
      }).then(res => {
        this.setData({
          list: res.result.data
        })
      })
    })
  },

  onClickShow(e) {
    let key = e.currentTarget.dataset.each
    let show = "list[" + key + "].show"
    this.setData({
      [show]: true
    })
  },

  formSubmit:function(e){
    let that = this
    userpay.doc(e.detail.target.id).update({
      // data 传入需要局部更新的数据
      data: {
        type:e.detail.value.type,
        price: parseFloat(e.detail.value.price)
      },
      success: function (res) {
        wx.showToast({
          title: '修改成功',
          icon: 'success',
          duration: 2000
        })
        wx.cloud.callFunction({
          // 要调用的云函数名称
          name: 'getall',
          // 传递给云函数的event参数
          data: {
            name: app.globalData.items[0]
          }
        }).then(res => {
          that.setData({
            list: res.result.data
          })
        })
      }
    })
  },
  formReset:function(e){
    let key = parseInt(e.detail.target.id)
    let show = "list[" + key + "].show"
    this.setData({
      [show]: false
    })
  },
  cancel: function () {
    wx.showModal({
      title: '警告',
      content: '您点击了拒绝授权,为保障您的利益请进行授权',
    })
  },
  quitItem:function(e){
    userinfo.where({ _openid:this.data.openid}).remove().then(res => {
      app.globalData.items = []
      this.setData({
        list: [],
        name: '',
        hasFlag: false
      })
      wx.showToast({
        title: '退出成功',
        icon: 'success',
        duration: 2000
      })
    })
    wx.cloud.callFunction({
      // 要调用的云函数名称
      name: 'deleteall',
      // 传递给云函数的event参数
      data: {
        openid:this.data.openid
      }
    })
  }
})
